/*
 * Copyright (c) Hunan Goke,Chengdu Goke,Shandong Goke. 2021. All rights reserved.
 */
#ifndef __YUV_CMOS_EX_H_
#define __YUV_CMOS_EX_H_

#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif

static const ISP_CMOS_CA_S gyuv_stIspCA = {
    /* CA */
    1,
    /* Y */
    {
        645, 647, 650, 653, 656, 659, 663, 668, 672, 676, 681, 685, 690, 694, 699, 703,
        707, 711, 715, 719, 723, 727, 731, 735, 739, 743, 748, 752, 757, 761, 766, 771,
        776, 782, 787, 793, 799, 806, 812, 818, 824, 831, 837, 843, 848, 854, 859, 864,
        869, 873, 877, 881, 885, 889, 893, 896, 900, 903, 906, 909, 912, 915, 918, 921,
        924, 926, 929, 931, 934, 936, 938, 941, 943, 945, 947, 949, 951, 952, 954, 956,
        958, 961, 962, 964, 966, 968, 969, 970, 971, 973, 974, 976, 977, 979, 980, 981,
        983, 984, 985, 986, 988, 989, 990, 991, 992, 993, 995, 996, 997, 998, 999, 1000,
        1001, 1004, 1005, 1006, 1007, 1009, 1010, 1011, 1012, 1014, 1016, 1017, 1019, 1020, 1022, 1024
    },
    /* ISO */
    /*  1,    2,    4,    8,   16,   32,   64,  128,  256,  512, 1024, 2048, 4096, 8192, 16384, 32768 */
    {1300, 1300, 1250, 1200, 1150, 1100, 1050, 1000,  950,  900,  900,  800,  800,  800,   800,   800}
};

static const ISP_CMOS_SHARPEN_S gyuv_stIspYuvSharpen = {
    /* u8SkinUmin */
    110,
    /* u8SkinVmin */
    128,
    /* u8SkinUmax */
    128,
    /* u8SkinVmax */
    149,

    /* Manual Para */
    {
        /* au8LumaWgt */
        {31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31},
        /* u16TextureStr */
        {250, 420, 390, 390, 390, 390, 390, 370, 350, 330, 310, 290, 270, 270, 270, 270, 270, 270, 266, 260, 244, 230, 230, 230, 230, 230, 230, 210, 190, 190, 170, 150},
        /* u16EdgeStr */
        {120, 123, 125, 128, 130, 135, 140, 148, 160, 168, 180, 190, 200, 210, 210, 210, 210, 210, 200, 190, 185, 175, 165, 160, 146, 136, 130, 128, 125, 123, 120, 120},
        /* u16TextureFreq; */
        160,
        /* u16EdgeFreq; */
        100,
        /* u8OverShoot; */
        55,
        /* u8UnderShoot; */
        70,
        /* u8shootSupStr; */
        10,
        /* u8shootSupAdj; */
        9,
        /* u8DetailCtrl; */
        128,
        /* u8DetailCtrlThr; */
        180,
        /* u8EdgeFiltStr; */
        60,
        /*u8EdgeFiltMaxCap; */
        18,
        /*u8RGain; */
        28,
        /* u8GGain; */
        32,
        /* u8BGain; */
        31,
        /* u8SkinGain; */
        23,
        /* u8MaxSharpGain; */
        67,
        /* u8WeakDetailGain */
        6

    },
    /* Auto Para */
    {
        /* au16LumaWgt */
        /* ISO */
        /*     100,    200,    400,    800,   1600,   3200,   6400,  12800,  25600,  51200, 102400, 204800, 409600, 819200,1638400,3276800 */
        {   {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,      1,      1,      1},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,      2,      2,      2},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,      4,      4,      4},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,      5,      5,      5},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,      7,      7,      7},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,      8,      8,      8},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,      9,      9,      9},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     10,     10,     10},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     12,     12,     12},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     13,     13,     13},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     14,     14,     14},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     15,     15,     15},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     17,     17,     17},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     18,     18,     18},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     19,     19,     19},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     20,     20,     20},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     22,     22,     22},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     23,     23,     23},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     24,     24,     24},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     26,     26,     26},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     26,     26,     26},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     26,     26,     26},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     26,     26,     26},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     27,     27,     27},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     27,     27,     27},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     27,     27,     27},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     27,     27,     27},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     28,     28,     28},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     28,     28,     28},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     28,     28,     28},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     28,     28,     28},
            {   31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     31,     28,     28,     28}
        },
        /* au16TextureStr  */
        /* ISO */
        /*     100,    200,    400,    800,   1600,   3200,   6400,  12800,  25600,  51200, 102400, 204800, 409600, 819200,1638400,3276800 */
        {   {  164,    135,    148,    146,    138,    145,    140,    140,    140,    113,     87,     87,     76,     28,     28,     28},
            {  196,    169,    177,    171,    164,    164,    163,    159,    159,    135,    101,    101,    130,     43,     43,     43},
            {  228,    203,    207,    195,    191,    191,    185,    178,    178,    157,    116,    116,    185,     59,     59,     59},
            {  256,    233,    232,    216,    212,    213,    204,    196,    196,    177,    132,    132,    238,     75,     75,     75},
            {  273,    252,    247,    228,    223,    223,    214,    208,    208,    191,    147,    147,    288,     91,     91,     91},
            {  288,    269,    261,    238,    232,    231,    222,    219,    219,    203,    162,    162,    332,    106,    106,    106},
            {  300,    282,    272,    246,    237,    237,    228,    229,    229,    214,    176,    176,    372,    121,    121,    121},
            {  308,    293,    280,    252,    241,    241,    232,    237,    237,    223,    188,    188,    410,    136,    136,    136},
            {  312,    300,    285,    255,    242,    243,    234,    243,    243,    229,    199,    199,    444,    152,    152,    152},
            {  313,    303,    288,    255,    240,    244,    233,    246,    246,    232,    207,    207,    475,    167,    167,    167},
            {  311,    305,    289,    254,    237,    243,    231,    248,    248,    234,    214,    214,    503,    183,    183,    183},
            {  308,    305,    288,    252,    233,    241,    228,    249,    249,    235,    220,    220,    527,    199,    199,    199},
            {  303,    304,    285,    249,    229,    238,    225,    249,    249,    234,    225,    225,    546,    214,    214,    214},
            {  295,    302,    281,    244,    224,    233,    220,    248,    248,    232,    229,    229,    559,    228,    228,    228},
            {  286,    299,    275,    239,    218,    227,    216,    246,    246,    229,    232,    232,    568,    241,    241,    241},
            {  277,    296,    268,    233,    213,    221,    211,    243,    243,    225,    233,    233,    572,    254,    254,    254},
            {  269,    292,    260,    227,    208,    215,    207,    240,    240,    221,    235,    235,    573,    267,    267,    267},
            {  261,    288,    251,    221,    202,    208,    203,    236,    236,    215,    235,    235,    568,    283,    283,    283},
            {  252,    284,    241,    215,    197,    201,    198,    232,    232,    209,    234,    234,    556,    298,    298,    298},
            {  243,    279,    232,    208,    192,    193,    193,    227,    227,    204,    232,    232,    535,    313,    313,    313},
            {  233,    273,    223,    201,    187,    186,    187,    222,    222,    199,    228,    228,    511,    325,    325,    325},
            {  222,    267,    214,    195,    183,    177,    181,    216,    216,    194,    223,    223,    482,    338,    338,    338},
            {  212,    261,    206,    188,    178,    169,    174,    209,    209,    189,    217,    217,    450,    348,    348,    348},
            {  201,    255,    197,    181,    173,    161,    168,    201,    201,    183,    210,    210,    417,    353,    353,    353},
            {  191,    248,    190,    174,    168,    153,    162,    192,    192,    175,    201,    201,    383,    350,    350,    350},
            {  180,    242,    182,    167,    162,    145,    156,    181,    181,    166,    191,    191,    347,    343,    343,    343},
            {  170,    235,    175,    160,    157,    137,    150,    170,    170,    157,    180,    180,    309,    330,    330,    330},
            {  161,    228,    167,    153,    151,    129,    144,    159,    159,    147,    168,    168,    269,    313,    313,    313},
            {  152,    221,    158,    147,    145,    120,    138,    148,    148,    137,    155,    155,    224,    287,    287,    287},
            {  144,    213,    149,    140,    140,    111,    132,    136,    136,    126,    142,    142,    117,    254,    254,    254},
            {  136,    205,    140,    134,    134,    102,    125,    125,    125,    116,    129,    129,    128,    219,    219,    219},
            {  128,    197,    131,    128,    128,     93,    119,    113,    113,    105,    118,    118,     80,    186,    186,    186}
        },
        /* au16EdgeStr     */
        /* ISO */
        /* 100,    200,    400,    800,   1600,   3200,   6400,  12800,  25600,  51200, 102400, 204800, 409600, 819200,1638400, 3276800 */
        {   {  219,    219,    193,    193,    172,    165,    131,    120,    432,    252,    214,    214,    224,    224,    224,    224},
            {  224,    224,    199,    199,    177,    169,    139,    126,    448,    262,    223,    223,    244,    244,    244,    244},
            {  228,    228,    205,    205,    181,    173,    147,    132,    463,    274,    233,    233,    265,    265,    265,    265},
            {  233,    233,    212,    212,    186,    177,    155,    139,    480,    284,    244,    244,    285,    285,    285,    285},
            {  237,    237,    218,    218,    190,    181,    161,    145,    494,    294,    254,    254,    303,    303,    303,    303},
            {  242,    242,    224,    224,    195,    185,    168,    151,    509,    301,    264,    264,    319,    319,    319,    319},
            {  246,    246,    230,    230,    199,    189,    174,    157,    524,    308,    273,    273,    333,    333,    333,    333},
            {  251,    251,    235,    235,    204,    193,    180,    163,    539,    314,    281,    281,    346,    346,    346,    346},
            {  255,    255,    239,    239,    208,    197,    185,    168,    554,    319,    288,    288,    357,    357,    357,    357},
            {  260,    260,    243,    243,    213,    201,    190,    173,    569,    322,    293,    293,    364,    364,    364,    364},
            {  265,    265,    247,    247,    217,    205,    195,    179,    583,    324,    297,    297,    370,    370,    370,    370},
            {  270,    270,    251,    251,    222,    209,    200,    184,    595,    326,    300,    300,    374,    374,    374,    374},
            {  274,    274,    254,    254,    226,    214,    204,    189,    605,    328,    302,    302,    379,    379,    379,    379},
            {  278,    278,    257,    257,    230,    217,    209,    195,    613,    329,    304,    304,    384,    384,    384,    384},
            {  282,    282,    260,    260,    234,    221,    213,    200,    619,    329,    305,    305,    390,    390,    390,    390},
            {  284,    284,    263,    263,    237,    224,    217,    205,    624,    329,    306,    306,    394,    394,    394,    394},
            {  286,    286,    265,    265,    241,    227,    222,    210,    627,    330,    307,    307,    398,    398,    398,    398},
            {  287,    287,    268,    268,    245,    231,    227,    215,    627,    330,    307,    307,    398,    398,    398,    398},
            {  288,    288,    272,    272,    249,    234,    232,    219,    627,    330,    307,    307,    398,    398,    398,    398},
            {  289,    289,    274,    274,    252,    237,    235,    223,    627,    330,    306,    306,    398,    398,    398,    398},
            {  288,    288,    276,    276,    255,    239,    237,    226,    628,    329,    305,    305,    398,    398,    398,    398},
            {  287,    287,    276,    276,    256,    240,    239,    229,    628,    329,    303,    303,    398,    398,    398,    398},
            {  284,    284,    275,    275,    255,    240,    239,    231,    628,    328,    300,    300,    399,    399,    399,    399},
            {  279,    279,    271,    271,    251,    237,    237,    229,    627,    328,    296,    296,    402,    402,    402,    402},
            {  272,    272,    264,    264,    244,    232,    232,    223,    627,    326,    291,    291,    405,    405,    405,    405},
            {  264,    264,    255,    255,    235,    225,    225,    214,    627,    325,    285,    285,    408,    408,    408,    408},
            {  254,    254,    244,    244,    223,    216,    216,    203,    623,    323,    279,    279,    411,    411,    411,    411},
            {  242,    242,    231,    231,    210,    205,    207,    193,    613,    320,    272,    272,    413,    413,    413,    413},
            {  231,    231,    218,    218,    196,    195,    197,    183,    593,    314,    264,    264,    411,    411,    411,    411},
            {  219,    219,    204,    204,    182,    184,    187,    173,    566,    307,    257,    257,    408,    408,    408,    408},
            {  208,    208,    191,    191,    169,    173,    177,    163,    536,    299,    249,    249,    405,    405,    405,    405},
            {  235,    197,    179,    179,    156,    163,    169,    153,    507,    292,    243,    243,    402,    402,    402,    402}
        },
        /* au16TextureFreq */
        /* ISO */
        /* 100,    200,    400,    800,    1600,    3200,    6400,   12800,   25600,   51200,  102400,  204800,  409600,  819200, 1638400, 3276800 */
        {  200,    200,    180,    180,     160,     160,     155,     170,     170,     170,     170,     170,     170,     170,     170,    170},

        /* au16EdgeFreq */
        {  130,    115,    100,    100,     100,     100,     100,     100,     100,     100,      96,      96,      96,      96,      96,     96},

        /* au8OverShoot */
        {   55,     60,     70,     70,      65,      55,      55,      55,      50,      45,      40,      40,      10,      10,      10,     10},

        /* au8UnderShoot */
        {   65,     75,     80,     80,      80,      70,      60,      55,      45,      45,      50,      50,      15,      15,      15,     15},

        /* au16shootSupStr */
        {    6,      6,      5,      5,       4,       4,       2,       2,       0,       0,       0,       0,       0,       0,       0,      0},

        /* au8ShootSupAdj */
        {    8,      8,      6,      6,       4,       4,       2,       2,       0,       0,       0,       0,       0,       0,       0,      0},

        /* au8DetailCtrl */
        {  135,    135,    128,     128,    128,     128,     128,     128,     128,     128,     120,     120,     120,     120,     120,    120},

        /* au8DetailCtrlThr */
        {  160,    160,    160,     160,    160,     160,     160,     160,     160,     160,     160,     160,     160,     160,     160,    160},

        /* au8EdgeFiltStr */
        {   50,     50,     50,      55,     57,      60,      61,      62,      62,      62,      62,      62,      62,      62,      62,     62},

        /*au8EdgeFiltMaxCap[ISP_AUTO_ISO_STRENGTH_NUM];*/
        { 18,   18,    18 ,  18,    18,   18,    18 ,    18 ,      18  ,   18 ,    18 ,    18 ,    18,    18  ,    18  ,   18 },

        /*au8RGain[ISP_AUTO_ISO_STRENGTH_NUM];*/
        {   28,     25,     20,      20,     20,      20,      20,      31,      31,      31,      31,      31,      31,      31,      31,     31},

        /* au8GGain */
        {   32,     32,     32,      32,     32,      32,      32,      32,      32,      32,      32,      32,      32,      32,      32,     32},

        /* au8BGain */
        {   31,     31,     31,      31,     31,      31,      31,      31,      31,      31,      31,      31,      31,      31,      31,     31},

        /* au8SkinGain */
        {   27,     27,     31,      31,     31,      31,      31,      31,      31,      31,      31,      31,      31,      31,      31,     31},

        /* u8MaxSharpGain */
        {   67,     70,     72,      74,     80,      80,      80,      80,      80,      80,      80,      80,      80,      80,      80,     80},
        /* au8WeakDetailGain                          */
        {   0,       0,     0,       0,     0,      0,         0,         0,     0,         0,     0,      0,      0,      0,        0,      0  }
    },
};

static const ISP_CMOS_LDCI_S gyuv_stIspLdci = {
    /* bEnable */
    1,

    /* u8GaussLPFSigma */
    36,

    /* 1,    2,    4,    8,   16,   32,   64,  128,  256,  512, 1024, 2048, 4096, 8192, 16384, 32768 */
    /* au8HePosWgt */
    { 16,   16,   12,    8,    4,    0,    0,    0,    0,    0,    0,    0,    0,    0,     0,     0},

    /* au8HePosSigma */
    { 80,   80,   80,   80,   80,   80,   80,   80,   80,   80,   80,   80,   80,   80,    80,    80},

    /* au8HePosMean */
    { 32,   32,   32,   20,   20,   20,   20,   20,   20,   32,   32,   32,   32,   32,    32,    32},

    /* au8HeNegWgt */
    { 32,   32,   40,   45,   45,   24,   12,    8,    6,    0,    0,    0,    0,    0,     0,     0},

    /* au8HeNegSigma */
    { 80,   80,   80,   80,   80,   80,   80,   80,   80,   80,   80,   80,   80,   80,    80,    80},

    /* au8HeNegMean */
    {180,  180,  128,  128,  128,  128,  128,  128,  128,  128,  128,  128,  128,  128,   128,   128},

    /* au16BlcCtrl */
    { 20,   20,   20,   20,   30,   30,   30,   30,   30,   30,   30,   30,   30,   30,    30,    30}
};

static const ISP_CMOS_DNG_COLORPARAM_S gyuv_stDngColorParam = {
    {378, 256, 430},
    {439, 256, 439}
};

#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* End of #ifdef __cplusplus */


#endif /* __YUV_CMOS_EX_H_ */
